In recent years, there has been a growth in interest in disk drive arrays which comprise a number of disk drives connectable to a using system via one or more controller elements which control the transfer of data to and from the disk drives. A disk array is designed to provide high capacity data storage, high reliability and high data transfer rates to and from the using system.
A number of different array schemes have been proposed. A paper entitled `A Case for Redundant Arrays of Inexpensive disks (RAID)` (ACM SIGMOD conference proceedings, Chicago, Ill., Jun. 1-3, 1988, pp. 109-116) details five levels of array (RAIDS 1 to 5) which provide different levels of data management. Each of the RAID levels permits users to increase their data storage capacity by linking together a number of inexpensive disk drives. The RAID system provides protection against loss of data through the failure of a drive by either storing two copies of the data on two drives (RAID 1) or by striping the data across two or more drives of the array, calculating the parity for the striped data and storing the parity data on a different drive. In the event that one of the data holding drives fails, it is possible using the parity data and the remaining data of the stripe to reconstruct the data on the failed drive (RAIDs 2 to 5).
It is known that the synchronization of the rotations of the disks in multiple disk drives can have performance advantages in an array of disk drives in which data is striped across the drives of the array. This is because during an operation to read the data, there will be a delay in accessing the data due to rotational latency. In a single disk drive, the average rotational latency is T/2 where T is the period of rotation of the disk. For a disk rotating at 3600 RPM, the average latency is 8.3 ms.
If the disk drives of the array are unsynchronized, the average rotational latency to locate the required data once the head has arrived on the correct track will be N.times.T/(N+1) where N is the number of disk drives across which the data is spread. For an array of four drives, this average latency is 13 ms, with the figure increasing with the number of drives in the array. If however, the disk drives are synchronized, the average latency is reduced to the figure for a single drive thus improving the performance of the array.
To date, spindle synchronization has been achieved using two main techniques.
In a first technique, one of the disk drives is designated as the master drive and the remaining drives are designated as slave drives. Such a technique is described in U.S. Pat. No. 3,893,178 and U.S. Pat. No. 4,907,105. The master drive is responsible for the synchronization of the slave drives and achieves this by issuing `synchronization pulses once per revolution to each of the slave drives over a cable interconnecting the master drive and slave drives. The synchronization pulse is used by the slave drives to lock their motors to this timing.
In a second synchronization technique, the disk drives are synchronized to an external signal provided by the controller or other means. Such a technique is described in EP 320 107 where a master controller connected to five disk drives issues a spindle reference signal to each of the drives over a lead. At each drive, the spindle reference signal is compared with a drive index pulse produced every revolution from a mark on the disk and based on this comparison the disk drive determines whether the disk motor should be slowed down or speeded up to achieve synchronization of the reference signal and the index pulse. The second technique has the advantage over the first technique in that there is no master drive/slave drive relationship and, therefore, synchronization is not lost in the event of failure of the master drive should fail.
One disadvantage of prior systems employing the second technique arises when the index pulses from all the drives to be synchronized either lag or lead the reference signal. The time required to lock the index pulses of all drives to the reference signal can be significant especially when the index pulses are close to 180 degrees out of phase with respect to the reference signal. This leads to a delay in beginning read/write operations to the synchronized drives.